package org.example.typeDemo;


import java.awt.*;

/**
 * 类型转换演示
 */
public class TypeCover {

    public static void main(String[] args) {
        byte b2 = 65; // 系统会自动把 65 当成 byte 类型处理
        int a = 12;
        byte b = (byte) a; // 强制类型转换
        float f = (float) 5.6; // 强制类型转换
        int i = (int) -12.81; // 强制类型转换（小数部分被截掉），i = -12
        char c= (char) 65; // 表示 'A' 字符

        System.out.println("b2:"+b2);
        System.out.println("b2:"+getBinaryStrFromByte(b2));
        System.out.println("a:"+a);
        System.out.println("b:"+b);
        System.out.println("b:"+getBinaryStrFromByte(b));
        System.out.println("f:"+f);
        System.out.println("i:"+i);
        System.out.println("c:"+c);
    }
    /**
     * 把byte转化成2进制字符串
     * @param b
     * @return
     */
    public static String getBinaryStrFromByte(byte b) {
        String result = "";
        byte a = b;
        ;
        for (int i = 0; i < 8; i++) {
            byte c = a;
            a = (byte) (a >> 1);//每移一位如同将10进制数除以2并去掉余数。
            a = (byte) (a << 1);
            if (a == c) {
                result = "0" + result;
            } else {
                result = "1" + result;
            }
            a = (byte) (a >> 1);
        }
        return result;
    }

}
